//导入配置文件
const config = require('../config')

//用这个包来生成Token字符串
const jwt = require('jsonwebtoken')

// 解码Token
function decodeToken(token) {
    // 在这里解码Token，获取其中的信息
    // 例如，可以使用jsonwebtoken库进行解码
    const decoded = jwt.verify(token, config.accessTokenSecret);
    // 返回解码后的Token信息
    return decoded;
}
// 检查Token是否过期
function isTokenExpired(token) {
    const decodedToken = decodeToken(token);
    const currentTime = Date.now() / 1000; // 当前时间
    return decodedToken.exp < currentTime; // 如果Token的过期时间小于当前时间，则表示Token已过期
}

// 检查 Token 有效性的中间件函数
const checkTokenValidity = (req, res, next) => {
    const token = req.headers.authorization.split(' ')[1]; // 从请求头中获取 Token
    console.log("🚀 ~ checkTokenValidity ~ isTokenExpired(token):", isTokenExpired(token))
    if (isTokenExpired(token)) {

        return res.status(401).json({ message: "Token invalid or expired" });
    }
    next();
};

// 导出中间件函数
module.exports = {
    checkTokenValidity
};